package com.gohome.gohomechat.utils;


import android.annotation.TargetApi;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Build;

import com.gohome.gohomechat.R;

/**
 * Created by dllo on 16/3/3.
 */
public class NoticationUtil {
    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    public void showNotification(Context context){
        // 第一步 获得NotificationManager对象,通过调用getSystemService获得,参数是Context.NOTIFICATION_SERVICE
        NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        // 第二步 创建出一个Builder对象
        Notification.Builder builder = new Notification.Builder(context);
        builder.setSmallIcon(R.mipmap.ic_launcher);
        builder.setContentTitle("标题");
        builder.setContentText("内容");
        builder.setWhen(System.currentTimeMillis()); // 设置显示的时间 不设置则取系统时间
    //    builder.setNumber(id++); // 设置notification条数

        // TODO 还没写完

        Intent jumpIntent =new Intent(context,Notification.class);
        // 延迟跳转 点击后跳转
        // PendingIntent 用于演示执行我们的意图
        // 具体执行意图的方式 通过Pending的get方法
        // 例如 我们要启动一个Activity 就调用PendingIntent.getActivity 第四个参数,通常选用PendingIntent.FLAG_ONE_SHOT执行一次后就失效
        PendingIntent pendingIntent=PendingIntent.getActivity(context, 0, jumpIntent, PendingIntent.FLAG_ONE_SHOT);
        // 设置PendingIntent给我们的Notification,让他可以点击
        builder.setContentIntent(pendingIntent);

        // build()方法是 API16之后使用的
        // API 11~16 使用builder.getNotification()
        //   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        // 第三步 通过Builder对象的build()方法创建出Notification来
        Notification notification = builder.build();
        // 通过设置flags属性,让Notification点击后消失
        notification.flags=Notification.FLAG_AUTO_CANCEL;
        //  }

        // 第四步 将Notification显示出来
        //通过manager的notification方法显示出设定好的Notification
        // 接收2个参数,第一个参数是ID 相同的id会被系统认为是同一个Notification
        // 第二个参数是我门创建好的notication
        manager.notify(0, notification);
    }
}
